package cn.tangshh.universal.core.util;

import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.RandomUtil;

import java.util.Date;

/**
 * 随机标识生成工具
 *
 * @author Tang
 * @version v1.0
 * @since 2024/05/30
 */
public final class CodeGeneratorUtil {
    private CodeGeneratorUtil() {
    }

    /**
     * 获取基础标识 Hx(时间戳)+6位随机数
     *
     * @return {@link String }
     */
    public static String getBaseCode() {
        return Long.toString(System.currentTimeMillis(), 32) + RandomUtil.randomString(6);
    }

    /**
     * 获取次序标识 17位时间序列值+7位随机数
     *
     * @return {@link String }
     */
    public static String getOrderCode() {
        return DateUtil.format(new Date(), DatePattern.PURE_DATETIME_MS_FORMAT) + RandomUtil.randomNumbers(7);
    }

    /**
     * 获取文件标识 14位时间序列值+6位随机数
     *
     * @return {@link String }
     */
    public static String getFileCode() {
        return DateUtil.format(new Date(), DatePattern.PURE_DATETIME_FORMAT) + RandomUtil.randomNumbers(6);
    }
}
